/*
*****************************************************************************
* COPYRIGHT AND WARRANTY INFORMATION
*
* Copyright 2002-2012, Advanced Audio Video Coding Standard, Part II
*
* DISCLAIMER OF WARRANTY
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations under
* the License.
*
* THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE AVS PATENT POLICY.
* The AVS Working Group doesn't represent or warrant that the programs
* furnished here under are free of infringement of any third-party patents.
* Commercial implementations of AVS, including shareware, may be
* subject to royalty fees to patent holders. Information regarding
* the AVS patent policy for standardization procedure is available at
* AVS Web site http://www.avs.org.cn. Patent Licensing is outside
* of AVS Working Group.
*
* The Initial Developer of the Original Code is Video subgroup of AVS
* Workinggroup.
* Contributors: Qin Yu,         Zhichu He,  Weiran Li,    Yong Ling,
*               Zhenjiang Shao, Jie Chen,   Junjun Si,    Xiaozhen Zheng, 
*               Jian Lou,       Qiang Wang, Jianwen Chen, Haiwu Zhao,
*               Guoping Li,     Siwei Ma,   Junhao Zheng, Zhiming Wang
*               Li Zhang,
******************************************************************************
*/




/*
*************************************************************************************
* File name:
* Function:
*
*************************************************************************************
*/

#ifndef _IMAGE_H_
#define _IMAGE_H_


#if MULTIVIEW_CODING
int multiView_encode_one_frame ();
#endif

int encode_one_frame ();
void picture_data ( Picture *pic );
void Update_Picture_Buffers();

void find_distortion ();

void SliceSetAllocate ( int i );
void init_slice_set ( int type );
#if ALF
void picture_header_ALF(ALFParam** alfPictureParam);
#endif

#if MV_COMPRESSION
void compressMotion();
#endif

#endif

#if REF_BUG_F2
extern void addCurrMvtoBuf();
#endif


#if MULTIVIEW_CODING
extern int min_tr( int ref[REF_MAXBUFFER], int last_out, int *pos);
#ifdef WIN32
extern void write_frame ( int p_dec , int pos);         //!< filestream to output file
#else
extern void write_frame ( FILE *p_dec , int pos);         //!< filestream to output file
#endif


#endif